<html>

<head>
<meta charset="utf-8">

<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>为什么要学习汇编语言</title>
<style>
<!--
.swy1 {font: 12pt/14pt "宋体"} 
-->
</style>
</head>

<body text="#FFFFFF" bgcolor="#000000">

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<b><font size="4">为什么要学习汇编语言?</font></b></p>
<p><b><font size="4">&nbsp; </font></b><font size="2">编者注:该文章非编者原创,是台湾宏基公司 
</font><span class="swy1"><font size="2">&quot;仓颉输入法&quot; 的作者</font></span><font size="2">朱邦复所写.</font></p>
<pre><span class="swy1">一、结构基础

    物质文明之有今天的成就，是因为人类掌握了物质的基本结构。物质的种类无穷，
但是却都由基本元素交互组成，只要根据一定的法则，就能得到一定的结果。
    计算机技术虽然日新月异，应用软件的变化也无止无尽，而其基本因子却非常有限。
各种微处理器的汇编语言，正是计算机软件的基础结构，任何要通过软件以完成的动作，
都是经由汇编语言的指令群，逐步执行的。
    因为计算机结构复杂，各种任务分工极精，即使是一位资深的高级程序员，终其生
也不过局限在若干固定的程序中钻研，很难以宏观的立场认知全貌。再加上市场需求的
压力，局外人莫名其奥妙，局中人又忙得不可开交，所以还没有任何人能作出全盘的评
估。
    汇编语言首先成为被误解的牺牲者，包括应用它的系统工程师在内，都一致认为它
「难学难用」，（中文也是一种组合形式的应用，其所组合者是人的概念。无独有偶，
人们在不求甚解之余，都视之为畏途。）事实上大谬不然，现在是科学挂帅，而科学的
精义就在于系统的分类和应用。问题是我们能不能归纳出一些学习、应用的法则，将组
合的过程化繁为简，以符合各种应用范畴。

二、个人体验

    我个人对此感受极为深切，我原是个十足的外行，1978年第一次接触计算机，曾以
不到两周的时间，就学会计算机操作，并应用「培基语言」设计完成&quot;仓颉输入&quot;
程序。当时我认为培基语言易学易用，是计算机上最好的工具。
    后来，我开始用培基语言设计&quot;仓颉向量组字&quot;程序，每秒可生成两个字，当
时与我合作的宏碁公司建议我采用汇编语言，他们说组字程序速度要快，培基语言不能
胜任。如改用汇编语言，效率可提高十倍，由此开始了我与汇编语言的不解之缘。1979
年９月我们正式推出了由国人自行设计、具有完整的计算机功能、可运用数万中文字的
&quot;天龙中文计算机&quot;。
    宏碁公司动用了三位资深工程师，采用 Z80 MCZ系统，以六个月的时间完成了向量
组字及系统程序，记忆空间占60KB，处理速度每秒约组成30字。
    这是我首次发现到汇编语言的威力，深究之下，才理解到计算机的全部工作原理。
简单说来，汇编语言就是组合计算机所有功能的控制指令，利用它，就可以直接控制计
算机。
    其它高级语言，只是让人省事，用一些格式化的手续，把人的想法化为过程的指令，
这种情形就相当于为了迁就开车的人，建了密如蛛网的高速公路。本来走路只要几分钟
就可到达的地方，以车代步的结果，反而需要耗费半个小时。
    1980年，我决定自己动手，又重新设计了一套字数较多，字形较美观的组字程序。
只用了三个月的时间，结果不仅记忆空间缩小了三分之一，速度也快了十倍，达到每秒
 300字。这个产品，就是1苹果机上用的「汉卡」。
    1983年，再经分析，我发现以往写的程序很不精简，技术也不成熟。我坚信中文字
形在计算机上的应用，将是中国文化存亡兴衰的根本因素，不仅值得投注自己的时间及
精力，且也有此必要。所以我又拋掉了一切，重头设计，加入更多的变化参数，并根据
人的辨识原理，设计成第三代至第五代等多种字形产生器。每一代之间，速度都明显地
提高，功能也不断加强。在这样一再重复的摸索中，尝试了各种可行的途径，充份认识
了汇编语言的特性及长处。
    由于汇编语言灵活无比的特性，我发现它就如同画家的画笔一般，只为了牟利，可
以用它画成各种廉价速成的商品；一旦投入自己的理想与心智，画笔就不再只是一枝笔，
而成为人心与外界的界面，画出的作品立时升华成为艺术，进入一个更高的境界！
    1985年，我再次重新设计规划，采用人的智能原则，把人写字、认字的观念化为数
据结构，程序只是用来阐释数据、控制计算机的界面。该字库的字形可做到无级次放大
缩小，字体、字型皆能任意变化 (每字可以产生数亿种变形) 。而且除了现今各种字典
已收的六万余字外，还可以组成完全符合中文规则的新字六百万个，足敷未来新时代新
观念的发挥应用。
    不仅如此，组字速度又提高了，每秒可以组成 30*30的字形两千个！当然现在用的
是15MHZ 80286 ，比以往的4.75 MHZ的Z80 已经快了近六倍。但是，改良后的新程序，
其功能的增加，处理过程的繁杂性已远非当年可比。
    这些成果，用了很多特殊的数据结构技巧，不可能经由高级语言来完成。既然用汇
编语言所制作的程序能一再大幅度地改进，这就说明了汇编语言的弹性极大，效率相去
千里。如不痛下苦功钻研，程序写完，能执行就算了事，又怎能领悟其中奥妙？
    所以，我并不认为汇编语言只是一种程序语言而已，它是一种创造艺术品的工具，
它能赋与无知无觉的电子机器一种「生命」，由无知进而有知，由有知而生智能。通过
对汇编语言的研究探索，我整理出一些规律，写成这本书，以便于理解及应用。但是，
要真正将汇编语言发展成为艺术，尚有待青年朋友们继续努力，在这个信息时代，开拓
出一片崭新的天地。
    无意义的音符能编成美妙的音乐，无规律的色彩可幻化为缤纷的世界，为什么计算
机的机器指令，不能架构出信息的理性天地？
    这就是艺术，作为艺术家，就必须奉献出自己的心血，以真、善、美为最高境界。
    要达到这种目的，就要认真的作好准备动作，再一步一步地追求下去。

三、利人与利己

    任何一种商业产品，当然是以利益为先，利己后而利人。如果是艺术品创造，则刚
刚相反，唯有能忽视己利，沥血泣心地探索，虔诚狂热地奉献，才会迸发出人性的光辉，
创造不朽的杰作。
    艺术家之伟大，在于此，人性之可贵，在于此。
    对组合程序语言，有人视为商品，将写作技巧当作专利，轻不示人。相信这也是迄
今尚无一本象样的参考书籍之根本原因，我买了不少这类书，但书中除了指令介绍以及
编程、侦错的手续外，完全没有技巧的说明，好象懂得指令就可以把程序写好一般。当
我自己下了不少功夫，得到了一些心得，再回过头来看那些参考书，才发现连作者本人
所举的例子，都是平铺直叙，毫无技巧可言。
    （更正，在序言中我曾提到有本最近出版的&quot;禅－汇编语言&quot;，是唯一的例外，
希望读者不要错过。）
    多年来，我一直想写本有关汇编语言写作技巧的书，可惜都得不到机会。这次，为
了实现「整合系统」革命性的计划，所有招收的工程师，一概从头训练。由于没有可用
的教材，只好自己动手，于是初步有了讲义，再经修改，便成此书。
    我认为，既然汇编语言是种艺术，我们不仅不应该藏私自珍，而且要相互探讨，交
流切磋，以期发扬光大。
    不过，技术本身与利用该技术所创造的产品却不能混为一谈，产品是借以谋生的工
具，能够生存，大家才有研究发展的机会，也才能把成果贡献给社会。如果国人不尊重
别人的产品权利，只是互相抄袭盗用，或能受惠于一时，但影响所及，人人贪图现成，
不事发展，则观念停顿，技术落伍，其后果不堪设想。</span></pre>
<p>　</p>

</body>

</html>
